#include<bits/stdc++.h>
using namespace std;

class Solution
{
private:
    /* data */
public:
    int jump(vector<int>& nums){
        if(nums.size()==1){
            return 0;
        }
        vector<int> vec(nums.size(),INT_MAX);
        vec[0]=0;
        for(int i=0;i<nums.size();++i){
            for(int j=i;j<=i+nums[i]&&j<nums.size();++j){
                vec[j]=min(vec[j],vec[i]+1);
            }
        }
        return vec[nums.size()-1];
    }
};


int main(int argc, char const *argv[])
{
    // vector<int> nums={2,3,1,1,4};
    // vector<int> nums={1,2,3};
    vector<int> nums={2,3,1,1,4};
    Solution s;
    int res = s.jump(nums);
    cout<<res<<endl;
    return 0;
}
